Python画图总结 您所在的位置:网站首页 python plt图例 Python画图总结

Python画图总结

2023-04-08 02:58| 来源: 网络整理| 查看: 265

1 绘图 1.1 曲线图 1234567fig = plt.figure()# 一个二维图ax = fig.add_subplot(111)ax.plot(xlist, ylist)# 或者一个三维图ax = fig.add_subplot(111, projection='3d')ax.plot(xlist, ylist, zlist)

常用参数: - color:颜色 - linewidth:线宽 - linestyle:线型 - label:标签 - marker:曲线上的标记类型 - markersize:曲线上的标记大小

Matplotlib官网关于线型的描述 线型除了'solid', 'dotted'等,还可以用tuple来定义,如下图所示:

绘制双Y轴图 12345678910111213141516import matplotlib as mplmpl.rcParams['text.usetex'] = True # 使用Latex语法

xlist = [1, 2, 3, 4, 5]y1_list = [2, 4, 6, 8, 10]y2_list = [1, 3, 5, 7, 9]

fig = plt.figure()ax = fig.add_subplot(111)ax.plot(xlist, y1_list, label='Y1') # 绘制第一个轴的ax.set_xlabel('$x(m)$') # 设置X轴ax.set_ylabel('$Y1(m/s^2)$') # 设置Y1轴

ax_new = ax.twinx()ax_new.plot(xlist, y2_list, label='Y2') # 绘制第二个轴的ax_new.set_ylabel('$Y2(m^2)$') # 设置Y2轴

绘制多个子图

参考知乎文章和CSDN文章 1234567891011121314import numpy as npimport matplotlib.pyplot as plt

x = np.linspace(0, 10)fig1 = plt.figure(1)ax1 = plt.axes([0.1, 0.1, 0.8, 0.4]) # 四个值分别是: [子图左下角的x 子图左下角的y, 子图宽度, 子图高度] 四个值都是相对全图来取值的,范围为0-1ax1.plot(np.sin(x), label='sinx')ax1.legend()

ax2 = plt.axes([0.1, 0.5, 0.8, 0.4])ax2.plot(np.cos(x), label='cosx')ax2.legend()

plt.show()

1.2 散点图 1234567fig = plt.figure()# 一个二维图ax = fig.add_subplot(111)ax.scatter(xlist, ylist)# 或者一个三维图ax = fig.add_subplot(111, projection='3d')ax.scatter(xlist, ylist, zlist)

常用参数: - color:颜色 - marker:散点类型 - s:散点尺寸 - linewidth:散点描边宽度 - edgecolor:散点描边颜色 - label:标签

Matplotlib官网关于marker的描述

PS:画空心原点,将颜色设置为白色(color='white'),选择合适的描边宽度和颜色即可。

1.3 箱型图 123fig1 = plt.figure(1)ax1 = plt.axes()ax1.boxplot(your_array) # 二维数组,对每列画箱型图

常用参数: 参考Matplotlib官网:boxplot

sym: 奇异值标记设置,例如'r+'为红色+号 vert:画垂直箱体图。True垂直箱体图 or False水平箱体图 whis: 奇异值门槛。默认1.5,取值越大箱体包纳的数据越多。 widths: 箱体宽度。默认0.5 labels: 标签。给定一个标签序列 meanline: 布尔值 是否画出平均值线

其他可定义的参数:参考Matplotlib官网:boxplot格式自定义

boxpros : 给定一个字典 设置箱体的属性 whiskerprops: 给定一个字典 设置两端的属性 flierprops: 给定字典 设置奇异值的属性 medianprops: 给定字典 设置中间线属性 meanprops: 给定字典,设置平均值属性

设置箱体填充颜色:参考Matplotlib官网:boxplot箱体填充

3 颜色 3.1 默认颜色

Matplotlib官网关于默认颜色的描述

提取默认颜色序列colors (画图引用时传入color=colors[i]即可) 12prop_cycle = plt.rcParams['axes.prop_cycle']colors = prop_cycle.by_key()['color'] #### 3.2 颜色库 Seaborn调色板表格整理

3.3 三维图背景改成白色和去网格 1234ax.w_xaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))ax.w_yaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))ax.w_zaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))ax.grid(False) 4 坐标轴和图例 4.1 显示右上刻度线,刻度线朝内 123plt.rcParams['xtick.direction'] = 'in' # x刻度线朝内plt.rcParams['ytick.direction'] = 'in' # y刻度线朝内plt.tick_params(top='in', right='in', which='both', labelsize=12) # 显示上侧和右侧的刻度并朝内, 设置字体大小12 4.2 图例位置、图例去除框、图例字体和字体大小设置 12345plt.rc('legend', fontsize=8) # 图例字体大小plt.legend(loc='upper left', frameon=False, prop={"family": "simsun"})# 图例位置的参数有:'upper left', 'upper right', 'lower left', 'lower right'# 'upper center', 'lower center', 'center left', 'center right'# 'center', 'best' 4.3 使用Latex语法 1234import matplotlib as mplmpl.rcParams['text.usetex'] = Trueax.set_xlabel('$x(m)$') # Latex语法在美元符号$$中间输入ax.set_ylabel('$y(m/s^2)$')

PS: 开启text.usetex时不能有中文,所以需要使用中文前设置为False,使用中文后设置为True

4.4 设置坐标轴范围,设置刻度 12345678fig1 = plt.figure(1)ax1 = plt.axes()ax1.plot(np.linspace(-100, 100, 100), np.linspace(-20, 20, 100))ax1.set_xlim([77, 85]) # 设置X轴范围ax1.set_ylim([-15, 5]) # 设置Y轴范围ax1.set_xticks(np.arange(78, 86, 2)) # 设置X轴刻度ax1.set_yticks([-10, -5, 0]) # 设置Y轴刻度plt.show() 5 保存 12345678xlist = [1, 2, 3, 4, 5]ylist = [2, 4, 6, 8, 10]

fig = plt.figure(1)ax = fig.add_subplot(111)ax.plot(xlist, ylist)# bbox_inches='tight'保存图片时保持紧凑 pad_inches=0图片周围不留白fig.savefig('filename', dpi=600, bbox_inches='tight', pad_inches=0)

图片转灰度

1234from PIL import Imageim = Image.open('image/q_ij.png')im = im.convert('L')im.save('image/q_ij.png') 6 常见问题 6.1 无法显示中文 12import matplotlib as mplmpl.rc("font", family='simsun') # 默认宋体 6.2 不显示负号 1plt.rcParams['axes.unicode_minus'] = False # 解决无法显示负号


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有